package com.agileboot.attendance.domain.rule.service;

import com.agileboot.attendance.domain.rule.db.entity.AttendanceRule;
import com.agileboot.attendance.domain.rule.dto.AttendanceRuleDTO;
import com.agileboot.attendance.domain.rule.dto.AttendanceRuleQueryDTO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * 考勤规则Service接口
 *
 * @author ruoyi
 */
public interface IAttendanceRuleService extends IService<AttendanceRule> {
    
    /**
     * 分页查询考勤规则列表
     *
     * @param page 分页参数
     * @param queryDTO 查询条件
     * @return 考勤规则列表
     */
    IPage<AttendanceRuleDTO> page(IPage<AttendanceRule> page, AttendanceRuleQueryDTO queryDTO);
    
    /**
     * 新增考勤规则
     *
     * @param ruleDTO 考勤规则信息
     * @return 结果
     */
    boolean add(AttendanceRuleDTO ruleDTO);
    
    /**
     * 修改考勤规则
     *
     * @param ruleDTO 考勤规则信息
     * @return 结果
     */
    boolean update(AttendanceRuleDTO ruleDTO);
    
    /**
     * 删除考勤规则
     *
     * @param ruleId 考勤规则ID
     * @return 结果
     */
    boolean delete(Long ruleId);
    
    /**
     * 获取考勤规则详情
     *
     * @param ruleId 考勤规则ID
     * @return 考勤规则信息
     */
    AttendanceRuleDTO getInfo(Long ruleId);
} 